package Simulator;

import java.util.Date;


/**
 * Class Request
 */
public class Request {

	/**
	 * Etat d'une requete a faire
	 */
    public static int TO_DO = 0;
    	/**
	 * Etat d'une requete en attente d'un numéro d'ascenseur
	 */
    public static int LIFT_WAITING_NUMBER = 1;
    	/**
	 * Etat d'une requete en attente de l'ascenseur
	 */
    public static int LIFT_WAITING = 2;
    	/**
	 * Etat d'une requete dans l'ascenseur
	 */
    public static int IN_LIFT = 3;
    /**
     * Date de lancement de la requête.
     */
    private Date launchDate;

    /**
     * Date de fin de la requete
     */
    private Date endDate;

    /**
     * Etage de debut de la demande
     */
    private int startFloor;

    /**
     * Etage de fin de la demande
     */
    private int endFloor;

    /**
     * Poids de la demande.
     */
    private int weight;

    /**
     * Niveau d'urgence
     */
    private boolean urgent;

    /**
     * Numéro de l'ascenseur utilisé.
     */
    private int lift;

    /**

     * 0 : a effectuer
     * 1 : attente ascenseur
     * 2 : dans ascenseur   */

    private int status;

    /**
     * Set the value of startFloor
     * Etage de debut de la demande
     * @param newVar the new value of startFloor
     */
    public void setStartFloor ( int newVar ) {
        this.startFloor = newVar;
    }

    /**
     * Get the value of startFloor
     * Etage de debut de la demande
     * @return the value of startFloor
     */
    public int getStartFloor ( ) {
        return this.startFloor;
    }

    /**
     * Set the value of endFloor
     * Etage de fin de la demande
     * @param newVar the new value of endFloor
     */
    public void setEndFloor ( int newVar ) {
        this.endFloor = newVar;
    }

    /**
     * Get the value of endFloor
     * Etage de fin de la demande
     * @return the value of endFloor
     */
    public int getEndFloor ( ) {
        return this.endFloor;
    }

    /**
     * Set the value of nbPerson
     * Nombre de personne de la demande
     * @param newVar the new value of nbPerson
     */
    public void setWeight ( int newVar ) {
        this.weight = newVar;
    }

    /**
     * Get the value of nbPerson
     * Nombre de personne de la demande
     * @return the value of nbPerson
     */
    public int getWeight ( ) {
        return this.weight;
    }

    /**
     * Set the value of urgent
     * @param newVar the new value of urgent
     */
    public void setUrgent ( boolean newVar ) {
        this.urgent = newVar;
    }

    /**
     * Get the value of urgent
     * @return the value of urgent
     */
    public boolean getUrgent ( ) {
        return this.urgent;
    }

    /**
     * Set the value of lift
     * @param newVar the new value of lift
     */
    public void setLift ( int newVar ) {
        this.lift = newVar;
    }

    /**
     * Get the value of lift
     * @return the value of lift
     */
    public int getLift ( ) {
        return this.lift;
    }

    /**
    * Set the value of the launchDate
    * @param newVar the new value of lift
    */
    public void setLaunchDate ( Date newVar ) {
        this.launchDate = newVar;
    }

    /**
     * Get the value of the launchDate
     * @return the value of lift
     */
    public Date getLaunchDate ( ) {
        return launchDate;
    }

    /**
     * Set the value of status
     * 0 : a effectuer
     * 1 : attente ascenseur
     * 2 : dans ascenseur
     * @param newVar the new value of status
     */
    public void setStatus ( int newVar ) {
        this.status = newVar;
    }

    /**
     * Get the value of status
     * 0 : a effectuer
     * 1 : attente ascenseur
     * 2 : dans ascenseur
     * @return the value of status
     */
    public int getStatus ( ) {
        return this.status;
    }

    /**
     * Ascesseur de la date de fin
     * @return date de fin
     */
    public Date getEndDate(){
	    return this.endDate;
    }

    /**
     * Modification de la date de fin
     * @param d date de fin
     */
    public void setEndDate(Date d){
	    this.endDate = d;
    }

}
